package com.cms.recursoshumanos.json.object;

import com.cms.recursoshumanos.cache.ListaReciboCache;
import com.cms.recursoshumanos.constant.Constant;
import com.cms.recursoshumanos.json.me.JSONArray;
import com.cms.recursoshumanos.json.me.JSONException;
import com.cms.recursoshumanos.json.me.JSONObject;
import com.cms.recursoshumanos.object.Recibo;
import com.cms.recursoshumanos.object.TipoRecibo;
import com.cms.recursoshumanos.object.list.ListaRecibo;
import com.cms.recursoshumanos.utilities.Tool;

public class JsonObjectGetReciboPago 
{

	private static JsonObjectGetReciboPago _instance = null;
	public static JsonObjectGetReciboPago getInstance() 
	{
		if(_instance == null)
			_instance = new JsonObjectGetReciboPago();
		
		return _instance;
	}
	private String Result;
	public JsonObjectGetReciboPago()
	{
	}
	private static final String
	
		GETRECIBOPAGO = "GETRECIBOPAGO",
		GETRECIBOPAGO_STATUS = "STATUS",
		GETRECIBOPAGO_DATA = "DATA",
		GETRECIBOPAGO_DATOS_RECIBO = "DATOS_RECIBO",
		
		GETRECIBOPAGO_RECIBO_ID = "recibo_id",
		GETRECIBOPAGO_RECIBO_NUMERO = "recibo_numero",
		GETRECIBOPAGO_RECIBO_MONTO= "recibo_monto",
		GETRECIBOPAGO_RECIBO_FECHA_EMISION = "recibo_fecha_emision",
		
		GETRECIBOPAGO_TIPO_RECIBO_ID = "tipo_recibo_id",
		GETRECIBOPAGO_TIPO_RECIBO_NOMBRE = "nombre_tipo_recibo";

	public void fromJSON (String jsonString) 
	{
		if (jsonString != null)
		{
			if (!jsonString.equals(""))
			{
				try
				{
					JSONObject jsonObject = new JSONObject(jsonString);
					JSONObject getRecibo = jsonObject.getJSONArray(GETRECIBOPAGO).getJSONObject(0);
					String status = getRecibo.getString(GETRECIBOPAGO_STATUS);
					
					Result = status;
					
					if (status.equals(Constant.CODE_OK))
					{
		
						JSONArray data = getRecibo.getJSONArray(GETRECIBOPAGO_DATA);
						
						JSONObject objeto_data = data.getJSONObject(0);
						JSONArray datos_recibo = objeto_data.getJSONArray(GETRECIBOPAGO_DATOS_RECIBO);
		
						ListaRecibo listado = new ListaRecibo();
						
						for (int i = 0; i < datos_recibo.length(); i++ )
						{
							
								
								JSONObject json_recibo = datos_recibo.getJSONObject(i);
						
								listado.addRecibo(new Recibo(Integer.parseInt(json_recibo.getString(GETRECIBOPAGO_RECIBO_ID)),
																									Integer.parseInt(json_recibo.getString(GETRECIBOPAGO_RECIBO_NUMERO)),
																									Float.parseFloat(json_recibo.getString(GETRECIBOPAGO_RECIBO_MONTO)), 
																									Tool.getInstance().parseStringToDate(json_recibo.getString(GETRECIBOPAGO_RECIBO_FECHA_EMISION)),
																									new TipoRecibo(Integer.parseInt(json_recibo.getString(GETRECIBOPAGO_TIPO_RECIBO_ID)), 
																															json_recibo.getString(GETRECIBOPAGO_TIPO_RECIBO_NOMBRE))));
		
						}
						ListaReciboCache.getInstance().setListaRecibo(listado);
						
						//Tool.getInstance().saveUserInfoShared(MainRecursosHumanosActivity.getAppContext(), 6,listado);
					}
				} 
				catch (JSONException ex) 
				{
					ex.printStackTrace();
					Result = Constant.CODE_EMPTY;				
				}
				catch (Exception ex) 
				{
					ex.printStackTrace();
					Result = Constant.CODE_EMPTY;
				}
			}
			else
			{
				Result = Constant.CODE_NOT_SERVER_RESPONSE;
			}
		}
		else
		{
			Result = Constant.CODE_NOT_SERVER_RESPONSE;
		}
	}

	public String getResult()
	{
		return Result;
	}
	
}




